import { get, post, put, del } from '../common/utils/request';

// 获取用户地址列表
const getAddressList = async (userId) => {
  try {
    const response = await get(`/api/mall/address/list`);
    if (response.data.code === 200) {
		console.log("地址列表：",response.data.data);
      return response.data.data || []; // 返回地址列表
    } else {
      console.error('获取地址列表失败:', response?.data?.message || '未知错误');
      return [];
    }
  } catch (error) {
    console.error('请求地址列表失败:', error);
    return [];
  }
};



// 删除地址
const deleteAddress = async (userId, addressId) => {
  try {
    const response = await del(`/api/mall/address/delete?addressId=${addressId}`);
    if (response.data.code === 200) {
      return true;
    } else {
      console.error('删除地址失败:', response?.data?.message || '未知错误');
      return false;
    }
  } catch (error) {
    console.error('删除地址失败:', error);
    return false;
  }
};

// 设置默认地址（可选扩展）
const setDefaultAddress = async (userId, addressId) => {
  try {
    // 你可以通过 PUT 请求来更新 isDefault 字段
    const response = await put(`/api/mall/address/setDefault?addressId=${addressId}`);
    if (response.data.code === 200) {
      return true;
    } else {
      console.error('设置默认地址失败:', response?.data?.message);
      return false;
    }
  } catch (error) {
    console.error('设置默认地址失败:', error);
    return false;
  }
};

// 获取默认地址
const getDefaultAddress = async (userId) => {
  try {
    const response = await get('/api/mall/address/getDefault');
    if (response.data.code === 200) {
      return response.data.data; // 返回 Address 对象
    } else {
      console.error('获取默认地址失败:', response?.data?.message || '未知错误');
      return null;
    }
  } catch (error) {
    console.error('请求默认地址失败:', error);
    return null;
  }
};

// 新增地址
const addAddress = async (userId, form) => {
  try {
    // 后端路径：POST /api/mall/address/add/{userId}
    const response = await post(`/api/mall/address/add`, form);
    if (response.data.code === 200) {
      return true;
    } else {
      console.error('新增地址失败:', response?.data?.message || '未知错误');
      return false;
    }
  } catch (error) {
    console.error('新增地址请求异常:', error);
    return false;
  }
};

// 更新地址
const updateAddress = async (userId, form) => {
  try {
    // 后端路径：PUT /api/mall/address/update/{userId}
    const response = await put(`/api/mall/address/update`, form);
    if (response.data.code === 200) {
      return true;
    } else {
      console.error('更新地址失败:', response?.data?.message || '未知错误');
      return false;
    }
  } catch (error) {
    console.error('更新地址请求异常:', error);
    return false;
  }
};

export { getAddressList,  deleteAddress, setDefaultAddress, getDefaultAddress ,addAddress,updateAddress};
